#define _CRT_SECURE_NO_WARNINGS 1
#include"SeqList.h"
#include"Contacts.h"

void ConInit(Contacts* con) {
	SLInit(con);
}

void ConDes(Contacts* con) {
	SLDestroy(con);
}

void ConAdd(Contacts* con) {
	assert(con);
	Info IF;
	printf("请输入要添加的姓名：");
	scanf("%s", IF.name);
	printf("请输入要添加的性别：");
	scanf("%s", IF.gender);
	printf("请输入要添加的年龄：");
	scanf("%d", &IF.age);
	printf("请输入要添加的电话：");
	scanf("%s", IF.tel);
	printf("请输入要添加的地址：");
	scanf("%s", IF.addr);
	printf("添加成功\n");
	SLPushBack(con, IF);
}

int FindByname(Contacts* con,char name[]) {
	assert(con);

	for (int i = 0; i < con->size; i++) {
		if (0 == strcmp(name, con->arr[i].name)) {
			return i;
		}
		return -1;
	}
}

void ConDel(Contacts* con) {
	assert(con);
	char name[NAME_MAX];
	printf("请输入要删除的联系人:");
	scanf("%s", name);
	int f=FindByname(con, name);
	if (f < 0) {
		printf("联系人不存在\n");

		exit(1);
	}
	SLErase(con, f);
	printf("删除成功\n");
	return;
}

void ConMod(Contacts* con) {
	Info IF;
	assert(con);
	char name[NAME_MAX];
	printf("请输入要修改的联系人:");
	scanf("%s", name);
	
	int f = FindByname(con, name);
	if (f < 0) {
		printf("联系人不存在\n");

		exit(1);
	}
	printf("请输入新的姓名：");
	scanf("%s",con->arr[f].name);
	printf("请输入新的性别：");
	scanf("%s", con->arr[f].gender);
	printf("请输入新的年龄：");
	scanf("%d", &con->arr[f].age);
	printf("请输入新的电话：");
	scanf("%s", con->arr[f].tel);
	printf("请输入新的地址：");
	scanf("%s", con->arr[f].addr);
	printf("修改成功\n");
}

void ConFind(Contacts* con) {
	assert(con);

	char name[NAME_MAX];
	printf("请输入想查找的联系人:");
	scanf("%s", name);

	int f = FindByname(con, name);
	if (f < 0) {
		printf("联系人不存在\n");

		exit(1);
	}
	printf("姓名 性别 年龄 电话 地址\n");
	printf("%3s %4s %4d %4s %4s",
		con->arr[f].name,
		con->arr[f].gender,
		con->arr[f].age,
		con->arr[f].tel,
		con->arr[f].addr
	);
}

void ConShow(Contacts con) {
	printf("姓名 性别 年龄 电话 地址\n");
	for (int i = 0; i < con.size; i++) {
		printf("%3s %4s %4d %4s %4s",
			con.arr[i].name,
			con.arr[i].gender,
			con.arr[i].age,
			con.arr[i].tel,
			con.arr[i].addr
		);
	}
}